package com.example.inami.basic.entity.param;

import java.math.BigDecimal;
import java.time.LocalTime;
import java.util.Date;

import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.Pattern;

/**
 * (AllDataTypes)参数
 *
 * @author inami
 * @since 2025-02-21 17:11:06
 */
@Data
public class AllDataTypesParam {

    @Length(max = 11, message = "不能超过11个字符")
    private Integer id;
    //用户的年龄    
    @Length(max = 11, message = "用户的年龄不能超过11个字符")
    private Integer userAge;
    //当前的温度（摄氏度）    
    @Length(max = 4, message = "当前的温度（摄氏度）不能超过4个字符")
    private Integer temperature;
    //月收入（元）    
    @Length(max = 6, message = "月收入（元）不能超过6个字符")
    private Integer monthlyIncome;
    //某个城市的人口数量    
    @Length(max = 9, message = "某个城市的人口数量不能超过9个字符")
    private Integer population;
    //国家债务（单位：元）    
    @Length(max = 20, message = "国家债务（单位：元）不能超过20个字符")
    private Long nationalDebt;
    //人的身高（米）    

    private Integer height;
    //人的体重（千克）    

    private BigDecimal weight;
    //商品的价格（元）    
    @Length(max = 10, message = "商品的价格（元）不能超过10个字符")
    private Double price;
    //出生日期    

    private Date birthDate;
    //会议开始时间    

    private LocalTime meetingTime;
    //购买时间    

    private Date purchaseDatetime;
    //上次登录时间    

    private Date lastLogin;
    //毕业年份    
    @Length(max = 4, message = "毕业年份不能超过4个字符")
    private String graduationYear;
    //名字    
    @Length(max = 10, message = "名字不能超过10个字符")
    private String firstName;
    //姓氏    
    @Length(max = 100, message = "姓氏不能超过100个字符")
    private String lastName;
    //个人简介    

    private String biography;
    //简短笔记    

    private String shortNote;
    //项目描述    

    private String projectDescription;
    //研究论文    

    private String researchPaper;
    //头像（二进制数据）    
    @Length(max = 10, message = "头像（二进制数据）不能超过10个字符")
    private String profilePicture;
    //简历（二进制数据）    
    @Length(max = 100, message = "简历（二进制数据）不能超过100个字符")
    private String resume;
    //文档（二进制数据）    

    private String document;
    //签名（二进制数据）    

    private String signature;
    //项目报告（二进制数据）    

    private String projectReport;
    //论文（二进制数据）    

    private String thesis;
    //最喜欢的颜色    

    private String favoriteColor;
    //兴趣爱好    
    @Pattern(regexp = "^(reading|traveling|cooking)$", message = "Field must be one of 'reading','traveling','cooking'")
    private String hobbies;

}

